<?php
/**
 * SMS核心文件
 *
 * @copyright   Copyright 2009, Richie
 * @author      Richie <richbossman@163.com>
 * @package     SMS
 * @link        http://www.letphp.com
 * $Id: init.php 52 2011-03-24 15:00:25Z 442767452@qq.com $
 */

// 记录和统计时间（微秒）
function G($start,$end='',$dec=3) {
    static $_info = array();
    if(!empty($end)) { // 统计时间
        if(!isset($_info[$end])) {
            $_info[$end]   =  microtime(TRUE);
        }
        return number_format(($_info[$end]-$_info[$start]),$dec);
    }else{ // 记录时间
        $_info[$start]  =  microtime(TRUE);
    }
}

//记录开始运行时间
G('beginTime');
if(!defined('ROOT_PATH')) define('ROOT_PATH'	, dirname(getcwd()));
if(!defined('CORE_PATH')) define('CORE_PATH'	, ROOT_PATH.'/core/');
if(!defined('APPS_PATH')) define('APPS_PATH'	, ROOT_PATH.'/apps/');
if(!defined('ADDON_PATH')) define('ADDON_PATH'	, ROOT_PATH.'/core/addons/');
if(!defined('UPLOAD_PATH')) define('UPLOAD_PATH', ROOT_PATH.'/public/uploads/');
//处理不允许访问的应用
$app_name = isset($_REQUEST['app']) ? strtolower(str_replace(array('/','\\'),'',strip_tags(urldecode($_REQUEST['app'])))) : 'home';
$allow_apps = require ROOT_PATH.'/config/apps.php';
if(!in_array($app_name, $allow_apps)){
	$app_name = 'home';
}
if(!defined('APP_NAME')) define('APP_NAME', $app_name);
if(!defined('APP_PATH')) define('APP_PATH' , APPS_PATH.APP_NAME.'/');
//重新设定编译路径
if(!defined('THINK_PATH')) define('THINK_PATH' , CORE_PATH.'ThinkPHP/');
if(!defined('RUNTIME_PATH')) define('RUNTIME_PATH' , ROOT_PATH.'/_runtime/~'.APP_NAME.'/');
if(!defined('RUNTIME_ALLINONE')) define('RUNTIME_ALLINONE' , true);
if(!defined('APP_CACHE_NAME')) define('APP_CACHE_NAME', $app_name);// 指定缓存名称
if(defined('RUNTIME_ALLINONE') && is_file(RUNTIME_PATH.'~allinone.php')) {
    // ALLINONE 模式直接载入allinone缓存
    $result   =  require RUNTIME_PATH.'~allinone.php';
    C($result);
    // 自动设置为运行模式
    define('RUNTIME_MODEL',true);
}else{
    if(version_compare(PHP_VERSION,'5.0.0','<'))  die('require PHP > 5.0 !');
    // ThinkPHP系统目录定义
    $runtime = defined('THINK_MODE')?'~'.strtolower(THINK_MODE).'_runtime.php':'~runtime.php';
    if(is_file(RUNTIME_PATH.$runtime)) {
        // 加载框架核心编译缓存
        require RUNTIME_PATH.$runtime;
    }else{
        // 加载编译函数文件
        require CORE_PATH."sms/common/runtime.php";
        // 生成核心编译~runtime缓存
        build_runtime();
    }
}
// 记录加载文件时间
G('loadTime');
?>